已知A[n]为正数数组,试写出实现下列运算的递归算法;

来源:百度知道 编辑:UC知道 时间:2024/05/10 10:47:39
a. 求数组A中的最大整数;
b. 求n个数的平均值;
c. 求n个整数的平均值

#include <iostream.h>
class A //数组类声明
{
public :
A (int MaxSize=10):Size(MaxSize), E(new int[MaxSize]){ }
~A ( ) { delete [ ] E; }//析构函数在对象生存期即将结束的时刻由系统自动调用,用来完成对象被删除前的一些清理工作。
void Input(); //输入数组的内容
int Max(int n); //求最大值
int Sum(int n); //求数组元素之和
float Average(int n); //求数组元素的平均值

private:
int *E; //数组指针
int Size; //数组尺寸

};

void A :: Input ( )//输入数组的内容,输入零结束
{
cout << "请输入数组内容: \n";
for ( int i=0; i<Size; i++ )
{cin >> E[i];
if(E[i]==0) break;}
}

int A :: Max (int n) //递归求最大值
{
if (n==1) return E[0];
int t=Max ( n-1 );
if (E[n-1]>t) return E[n-1];
else return t;
}

int A :: Sum (int n) //递归求数组之和
{
if (n==1) return E[0];
else return E[n-1]+Sum (n-1);
}

float A :: Average (int n) //递归求数组的平均值
{